Multi-bit-per-cell flash EEPROM memory with refresh

ABSTRACT

A multibit-per-cell non-volatile memory divides the suitable threshold voltages of memory cells into ranges corresponding to allowed states for storage of data and ranges corresponding to forbidden zones indicating a data error. A read process in accordance automatically checks whether a threshold voltage is in a forbidden zone. In an alternative embodiment, a refresh process includes reprogramming the threshold voltage into an allowed state. In the case of a flash memory, a refresh reads a sector of the memory and saves corrected data from the sector in a buffer or another sector. The corrected data from the buffer or other sector can be written back in the original sector, or the corrected data can be left in the other sector with addresses of the original sector being mapped to the other sector. Refresh process for the non-volatile memory can be perform in response to detecting a threshold voltage in a forbidden zone, as part of a power-up procedure for the memory, or periodically with a period on the order of days, weeks, or months. As a further aspect, the allowed states correspond to gray coded digital values so that allowed states that are adjacent in threshold voltage correspond to multibit values that differ in only a single bit. Error detection and correction codes can be used to identify data errors and generate corrected data for refresh operations.

CROSS REFERENCE TO RELATED APPLICATION

This is a continuation-in-part of U.S. patent application Ser. No.09/924,909, filed Sep. 8, 1998.

BACKGROUND

1. Field of the Invention

This invention relates to non-volatile semiconductor memory and morespecifically to circuits and methods for detecting and correcting dataerrors in a memory storing multiple bits per memory cell.

2. Description of Related Art

Conventional electrically erasable non-volatile semiconductor memoriessuch as E²PROMs and flash memories have memory cells that includetransistors with programmable threshold voltages. For example, afloating gate transistor or a split gate transistor has a thresholdvoltage that is programmed or erased by charging or discharging afloating gate located between a control gate and a channel in thetransistor. The amount of charge on the floating gate of the transistordetermines the voltage that must be applied to the control gate to causecharge carrier inversion in the underlying channel and thereforedetermines the threshold voltage of the transistor. Data is written insuch memory cells by charging or discharging the floating gates of thememory cells to achieve threshold voltages corresponding to the data.

A binary memory stores one bit of data per memory cell. Accordingly,floating gate transistors in binary memory cells have twodistinguishable states, a high threshold voltage state and a lowthreshold voltage state. Any memory cell having a threshold voltageabove a cut-off threshold voltage value is in the high threshold voltagestate and stores a bit value, 1 or 0, that corresponds to the highthreshold state. Memory cells having threshold voltages below thecut-off are in the low threshold voltage state and store the bit value,0 or 1, corresponding to the low threshold voltage state.

A multibit-per-cell memory stores multiple bits per memory cell.Accordingly, a range of threshold voltages for a memory cell is dividedinto a number of states corresponding to the possible multibit datavalues stored in the memory cell. For example, a memory that stores twobits of data per memory cell has a range of suitable threshold voltagesfor memory cells that is divided into four states. A first stateincludes threshold voltages below a first cut-off. A second stateincludes threshold voltages between the first cut-off and a secondcut-off. A third state includes threshold voltages between the secondcut-off and a third cut-off, and a fourth state includes thresholdvoltages above the third cut-off.

A concern in non-volatile semiconductor memory is drift or unintendedchanges in the threshold voltages of memory cells. For example, overtime, charge tends to leak from the floating gates of memory cells andchange the threshold voltages of the cells. Charge leakage decreases thethreshold voltage of an N-channel memory cell. Alternatively, a floatinggate or an insulator surrounding the floating gate can collect or trapcharge and increase the threshold voltage of a cell. Further, operationof the memory, for example, programming or reading stresses memory cellsnot being accessed and can change threshold voltages. Changes in thethreshold voltage are a problem because the state of the memory cell andthe data value stored in the memory cell can change and create a dataerror. Such data errors are intolerable in many memory applications. Theproblem is worse for multibit-per-cell memories than for binary memoriesbecause the range of threshold voltages corresponding to a particularstate is typically smaller in a multibit-per-cell memory which makeschanges in the state of the memory cell more likely.

Multibit-per-cell memories that are resistant to data errors are sought.

SUMMARY

In accordance with the invention, a range of possible threshold voltagesfor a memory cell in a multibit-per-cell memory is divided into allowedstates associated with data values and forbidden zones between theallowed states. A memory cell being written is programmed into anallowed state. Subsequent reading of the memory cell indicating that thethreshold voltage of the memory cell is in a forbidden zone indicatesthat the threshold voltage of the memory cell has changed and is inerror. A memory cell with a threshold voltage in a forbidden zone can beflagged as a data error or corrected by increasing or decreasing thethreshold voltage to an adjacent allowed state. One specific embodimentof the invention is a flash memory that presumes charge loss in thememory cells and programs the threshold voltage of a memory cell up tothe next allowed state when the memory detects that the thresholdvoltage of the memory cell is in a forbidden zone. Alternatively, dataerrors can be corrected by reading the data values from a sector ofmemory cells including one or more memory cells containing one or moreerrors, erasing the sector, and then programming the sector withcorrected data values.

In accordance with another aspect of the invention, a non-volatilememory performs a refresh cycle in which memory cells are read andthreshold voltages of the memory cells are reprogrammed to an allowedstate. In a flash EPROM, the refresh cycle can refresh data in a singlesector or an entire memory array. In alternative embodiments, therefresh cycle is triggered by external circuit attached to a monolithicintegrated circuit memory or is self-triggered in the memory. Refreshesmay be performed at periodic intervals of operation, as part of apower-up procedure for the memory, or transparently during each readoperation performed by the memory.

According to a further aspect of the invention, adjacent states (i.e.,ranges of threshold voltages) for a multibit-per-cell memory cell aremapped to data values using gray coding or another coding system insteadof a direct monotonic mapping from threshold voltages to data values.With such coding, a drift from one threshold voltage state to anadjacent threshold voltage state causes only a single bit error. Suchsingle bit errors can be detected and corrected using error correctioncodes. The gray coding of allowed states can be used with or withoutforbidden zones between the coded states and/or refresh cycles tocorrect stored data.

One specific embodiment of the invention is a non-volatile semiconductormemory that includes: an array of memory cells where each memory cellthat stores data has a threshold voltage that identifies a multibit datavalue; an error detection circuit; and a control circuit that controlsrefresh operations. The error detection circuit detects errors inthreshold voltages of memory cells storing data and in response todetecting an error, signals that a memory cell or a memory sectorrequires a refresh operation. The refresh operation can occurimmediately, periodically, during the next start up of the memory, orwhen the memory becomes inactive for a period of time. During therefresh operation, the control circuit writes a corrected thresholdvoltage that corrects the error that the error detection circuitdetected. The corrected threshold voltage can be written to the originalmemory cell containing the error or another memory cell that replacesthe original memory cell after the refresh operation. The controlcircuit can read refresh information or an erase count for a sectorcontaining the memory cell having the error and based on the informationread select where to write the corrected threshold voltage.

The error detection circuit can detect the error by finding a thresholdvoltage in a zone forbidden to threshold voltages corresponding to dataor from an error detection code stored when the threshold voltage waswritten. Gray coded allowed threshold voltage states are preferred sothat a shift in threshold voltage from one allowed state to aneighboring allowed state causes only a single bit error in the datastored in the memory cell. The memory can further include a datacorrection circuit that processes an error correction code to identifythe corrected threshold voltage to correct the detected error.

Another specific embodiment of the invention is a non-volatilesemiconductor memory including an array of memory cells and a referencevoltage generator. In the array, each memory cell that stores data has athreshold voltage that identifies a multibit data value written in thememory cell. The reference generator generates signals indicating boundsof a plurality of ranges of threshold voltages allowed for the memorycells that store data, wherein each range corresponds to a multibitvalue that differs in only a single bit from a multibit valuecorresponding to a range that is adjacent in threshold voltage. Thereference generator may further generate reference signals indicatingbounds of one or more ranges of threshold voltages forbidden for thememory cells storing data. The circuit can also include a controlcircuit that detects whether the threshold voltage of a memory cellfalls in a forbidden range. If a threshold voltage is in a forbiddenrange, the control circuit corrects a data error by setting thethreshold voltage of the original memory cell or a replacement memorycell in an allowed range associated with the value originally written inthe original cell.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a block diagram of a multibit-per-cell memory in accordancewith an embodiment of the invention.

FIGS. 2A and 2B respectively show a row line voltage and a column linevoltage during a write operation in the memory of FIG. 1.

FIGS. 3A and 3B respectively show a row line voltage and a column linevoltage during a read/refresh operation in the memory of FIG. 1.

FIGS. 4A and 4B show partitions of threshold voltage ranges into allowedstates and forbidden zones in accordance with an embodiment of theinvention.

FIG. 5 shows a block diagram of a multibit-per-cell memory in accordancewith another embodiment of the invention.

FIG. 6 shows a block diagram of a multibit-per-cell non-volatile memorysystem with refresh circuits in accordance with an embodiment of theinvention.

Use of the same reference symbols in different figures indicates similaror identical items.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

A multibit-per-cell memory in accordance with an embodiment of theinvention partitions a range of threshold voltages of a memory cell intoa set of allowed states that correspond to data values that can bestored in the memory cell and a set of forbidden zones. The allowedstates are separated from each other by forbidden zones so that if thethreshold voltage of a memory cell drifts it must cross through aforbidden zone before reaching another allowed state. A memory celldetected as having a threshold voltage in one of the forbidden zonesindicates a data error that can be automatically corrected during a reador reported as an error for subsequent correction and refresh procedure.

FIG. 1 illustrates a multibit-per-cell memory 100 in accordance with anembodiment of the invention. Memory 100 includes a memory array 140. Inan exemplary embodiment of the invention, memory 100 is a flash EPROM,and array 140 includes hundreds or thousands of rows or columns ofN-channel floating gate transistors (memory cells) organized intoindependently erasable sectors. Each row of memory cells has controlgates coupled to a row line for the row, and each column of memory cellshas drains coupled to a column line for the column. Each erasable sectorhas a source line coupled to the sources of memory cells in the sector.Row, column, and source drivers and decoders 130 are coupled to memoryarray 140 and generate voltages that are applied to selected row,column, and source lines in memory array 140 for erase, write, and readoperations. For an erase, drivers and decoders 130 apply appropriatevoltages to the memory cells in a sector to cause Fowler-Nordheimtunneling that removes electrons from the floating gates and reduces thethreshold voltage of the memory cells in the sector. For a writeoperation, drivers and decoders 130 apply programming voltages to therow, column, and source lines coupled to a target memory cell to causechannel hot electron injection that increases the threshold voltage ofthe target memory cell to a level indicating a data value being written.As will be understood, applications of the invention are not limited toflash EPROM of the exemplary embodiment but can be employed in a varietyof memory architectures including but not limited to EPROM, E²PROM, andflash E²PROM.

A read/write control circuit 170 controls writing to a target memorycell in memory array 140. For a write, an input digital data signal Dinrepresenting a multibit value to be written to the target memory cell isa select signal for a multiplexer 120. Signal Din is restricted to thenumber of bits that can be written to a single memory cell. Data valuescontaining more bits than can be stored in a single memory cell may besplit into parts containing the number of bits, e.g., 2, 3, 4 . . .bits, that can be stored in a single memory cell so that the parts canbe written sequentially to memory cells using the circuitry shown inFIG. 1 or in parallel using parallel circuits (not shown.) Multiplexer120, which is coupled to a reference voltage generator 110, selects oneof input reference signals VW1 to VWn, where n is the number of possibledata values that can be stored in a memory cell. (For example, n issixteen (2^(x)) for memory storing four bits (x bits) per memory cell.)Multiplexer 120 generates an analog signal VW to drivers and decoders130 to indicate the value being written.

The write process proceeds as illustrated in FIGS. 2A and 2B. Inparticular, during a series of programming cycles 210, drivers anddecoders 130 generate and apply programming voltages Vpr and Vpc to therow and column lines of a target memory cell while grounding the sourceline of the sector containing the target cell. In the exemplaryembodiment, programming voltage Vpr is between 7 and 11 volts anddepends on signal VW. Drivers and decoders 130 may include, for example,a row line driver containing voltage shifter or amplifier having signalVW as an input signal and voltage Vpr as an output signal.Alternatively, voltage Vpr may be a fixed voltage, independent of signalVW. A conventional row decoder applies voltage Vpr to the row linecoupled to the target memory cell. A conventional column decoder appliesvoltage Vpc to the drain of the target memory cell during programmingcycles 210. Voltage Vpc is typically about 6 volts or whatever voltageis required to increase the threshold voltage of the target memory cellby channel hot electron (CHE) injection of electrons into the floatinggate of the target memory cell. Alternative embodiments of the inventionusing, for example, E²PROM technology program memory cells by tunnelinginstead of CHE injection.

Verify cycles 220 between programming cycles 210 determine whether thethreshold voltage of the target memory cell has reached the desiredlevel. During each verify cycle, drivers and decoders 130 apply to thecontrol gate of the target memory cell a voltage Vvfy which depends on(or is equal to) voltage VW (i.e., one of reference voltages VW1 toVWn), grounds the source lines, and applies a read voltage Vrc to thecolumn line of the target memory cell. A sense amplifier 150 senseswhether the target memory cell conducts. If the target memory cellconducts during a verify cycle 220, the threshold voltage of the memorycell is less than voltage Vvfy, and read/write control 170 startsanother programming cycle 210 to further increase the threshold voltage.If the target memory cell does not conduct during a verify cycle 220,the threshold voltage has exceeded (but is about equal to voltage Vvfy),and read write control 170 stops further programming cycles 220.

Read/write control 170 also controls read and refresh processes inaccordance with an embodiment of the invention. FIGS. 3A and 3Brespectively show a row line voltage and a column line voltage during anexemplary combined read/refresh process performed on a target memorycell. During a read stage 330 of the read/refresh process, drivers anddecoders 130 ground the source lines, apply a constant read voltage Vrc(typically about 1 to 2 volts) to the column line coupled to the targetmemory cell, and apply a series of reference voltages from referencevoltage generator 110 to the row line (and therefore the control gate)of the target memory cell. For each reference voltage applied to the rowline during read stage 330, sense amplifier 150 senses whether thetarget memory cell conducts. The applied reference voltages during readstage 130 indicate the bounds of allowed threshold voltage states and offorbidden threshold voltage zones such as illustrated in FIG. 4A. InFIG. 4A, reference voltages VF1 to VFm mark the upper bounds offorbidden zones 410 and the lower bounds of allowed threshold voltagestates 420. Reference voltages VA1 to VAn mark the upper bounds ofallowed threshold states 420 and the lower bounds of forbidden zones410. Each of the reference voltage levels VW1 to VWn are within anassociated one of allowed states 420 so that a write operation ends witha threshold voltage of a target memory cell being in the allowed state420 associated with the reference voltage VW. Voltage levels VW1 to VWnare not necessarily at the center of an associated allowed state 420.Depending on memory cell characteristics, reference voltage levels VW1to VWn can be near the top (if charge loss is the dominant effect) ornear the bottom (if charge gain is dominant effect) of the associatedallowable zones 420. Such an arrangement maximizes the chance that thethreshold voltage of a memory cell will remain in an allowed zone 420and be read correctly. To provide the desired reference voltages asshown in FIG. 4A (or 4B), reference voltage generator 110 may contain avoltage source coupled to series connected resistive elements with tapsbetween the resistive elements for the reference voltages VW1 to VWn,VF1 to VFm, and VA1 and VAn.

During read stage 330, read/write control 170 uses multiplexer 125 toselect reference voltages applied to through drivers and decoders 130 tothe row line coupled to the target memory cell. Reference voltagesstarting with lowest reference voltage (voltage VF1 in FIG. 4A) aresequentially applied in order of increasing voltage until senseamplifier 150 senses that applied voltage VR causes the target memorycell to conduct. Thus, at the end of read stage 330, voltage VR is upperbound of the allowed state or forbidden zone containing the thresholdvoltage of the target memory cell. An alternative read process to thatshown in FIGS. 3A and 3B starts at the maximum reference voltage VAn andproceeds in order of decreasing threshold voltage to find a lower boundof the allowed state or forbidden zone containing the threshold voltageof the target memory cell. Yet another read process starts at areference voltage in the middle of the range of reference voltages andidentifies which half (upper or lower) of the range contains the targetthreshold voltage. (If the memory cell conducts when the middlereference value is applied, the threshold voltage of the target memorycell is in the lower half. Otherwise, the threshold voltage of thetarget memory cell is in the upper half.) Second and if necessary thirdand subsequent reference voltages applied to the control gate are in themiddle of the range previously identified as containing the thresholdvoltage of the target memory cell. Sensing for these threshold voltagesidentifies which quarter, eighth, or smaller division of the thresholdvoltage range contains the threshold voltage of the target cell. Whenthe division identified is a single allowed state or forbidden zone, thereference voltage that is just above the threshold voltage of the targetmemory cell is identified. An advantage of the last read process is anon-average decrease in the number of reference voltages applied andsensed from 2^(x−1) to x where x is the number of bits stored per memorycell. Thus, the last read process provides better average performancefor memory storing more than two bits per memory cell.

Voltage VR at the end of read stage 330 indicates the upper bound ofeither an allowed state or a forbidden zone containing the thresholdvoltage of the target memory cell. Read/write control 170 generates amultibit digital data signal Dout based on the bound that voltage VRidentifies. If voltage VR at the end of read stage 330 is an upper boundof an allowed state, signal Dout indicates the multibit value associatedwith that state. If voltage VR is an upper bound of a forbidden zone,value Dout indicates the multibit value associated with the allowedstate just above the forbidden zone containing the threshold voltage ofthe memory cell. Thus, this read process assumes that the thresholdvoltage of the target memory drifted down which is the most common typeof change in threshold voltage for N-channel floating gate transistors.If voltage VR is the upper bound of an allowed threshold voltage stateat the end of read stage 330, the read/refresh process is complete. Norefresh is required. However, if as in FIG. 3A, voltage VR is the upperbound of a forbidden zone, a refresh stage 340 of the read/refreshprocess begins.

During refresh stage 340, programming cycles 310 and verify cycles 320raise the threshold voltage of the target memory cell to the next higherthreshold voltage state. In the particular example of FIGS. 3A and 3B,voltage VR is equal to reference voltage VF1 at the end of read stage330, and signal Dout identifies the multibit value corresponding to thenext greater allowed level and to reference voltage VW(i+1). Read/writecontrol 170 feeds signal Dout back to multiplexer 120 which sets voltageVW equal to the reference voltage VW(i+1). Thus, during programmingcycles 310 and verify cycles 320, programming voltage Vpr and verifyvoltage Vvfy are appropriate for the value being refreshed. As in thewrite process described above, programming cycles 310 continue until averify cycle 320 indicates that the threshold voltage of the target cellhas reached the level of reference voltage VW(i+1) after which refreshstage 340 is complete.

FIG. 5 shows an alternative multibit-per-cell non-volatile memory 500 inaccordance with an embodiment of the invention. Memory 500 differs frommemory 100 of FIG. 1 primarily in that a read uses an analog readcircuit 550 and comparators 560, not sense amplifiers 150. Inparticular, instead of repeatedly sensing whether the target memory cellconducts when a series of different reference voltages is applied to thecontrol gate of the memory cell, analog read circuit 550 generates ananalog voltage Vout that indicates the threshold voltage of the targetmemory cell. In an alternative embodiment, analog read circuit generatesa signal having a current that indicates the threshold voltage of atarget memory cell. U.S. Pat. No. 5,751,635, entitled “Read Circuits forAnalog Memory Cells”; U.S. Pat. No. 5,748,534, entitled “Feedback Loopfor Threshold Voltage Measurement”; and U.S. Pat. No. 5,748,533,entitled “Read Circuit that uses a Coarse-to-Fine Search when Readingthe Threshold Voltage of a Memory Cell” describe suitable analog readcircuits and are incorporated by reference herein in their entirety.Analog comparators 560 operate in parallel to compare voltage Vout toreference voltages VA1 . . . VAn and VF1 . . . VFN. From the results ofthe comparisons, logic (not shown) coupled to analog comparators 150determines which is the smallest reference voltage greater than voltageVout and generates digital output signal Dout. The architecture ofmemory 500 typically provides faster reads than memory 100 if generatingsignal Vout is faster than applying a series of reference voltages.

Alternatively, analog comparators 560 include one comparator or fewercomparators than there are references voltages VA1 . . . VAn and VF1 . .. VFN, and the comparator or comparators sequentially compare voltageVout to each references voltages VA1 . . . VAn and VF1 . . . VFN. Anysequence of comparisons can be made. For example, comparisons searchingfor the nearest reference voltage can start from a highest, lowest, ormiddle reference voltage and proceed until the range containing Vout isfound. This embodiment of the invention can decrease circuit size andcost but increases the read time.

The write/refresh process described above assumes that a thresholdvoltage in a forbidden zone indicates a memory cell that leaked chargewhich decreased the threshold voltage of the memory cell. However,threshold voltages can also increase as the result of charge trapping ina floating gate or in the insulator surrounding the floating gate. FIG.4B illustrates reference voltage levels VF1 to VFm that define twoforbidden zones 415 and 425 between each adjacent pair of allowed states420. Each forbidden zone 415 is just below an adjacent allowed state420. Each forbidden zone 425 is just above an adjacent allowed state420. In accordance with this embodiment of the invention, a data errorthat occurs when a memory cell has a threshold voltage in one offorbidden zones 415 is presumed to result from charge loss from a memorycell originally in the adjacent higher allowed state 420. Thus,read/write control 170 or 570 decodes a threshold voltage in a forbiddenzone 415 as data values corresponding to the next higher allowed state420. A threshold voltage in one of forbidden zones 425 is presumed toresult from charge trapping or another mechanism increasing thethreshold voltage from the adjacent lower allowed state 420. Additionalforbidden zones bounded by voltage levels VF0 and VF(m+1) at theextremes of the normal threshold voltage range are for detecting “harddefects.” For example, if the threshold voltage range of memory cells ofproperly operating memory cells is from 1.0 volt to 5.0 volts, athreshold voltage much less than 1.0 volt or much higher than 5.0 voltsindicates that a memory cell may be stuck at a low or high thresholdvoltage. A spare memory cell or spare sector can replace a stuck memorycell or a sector containing the stuck memory cell.

The sizes of allowed states 420 and forbidden zones 415 and 425 candiffer from one state or zone to the next. For example, if charge lossis the dominant factor in change of threshold voltages, the thresholdvoltage range for the forbidden zone 415 below an allowed state 420 canbe larger than the threshold voltage range of the forbidden zone 425above the allowed state 420. Furthermore, memory cells with higherthreshold voltage tend to lose charge faster. Accordingly, the size ofallowed states 420 and forbidden zones 415 and 425 can vary with thethreshold voltages in the states or zones. Further, reference voltagegenerator 110 can also adjust the boundaries of zones 415, 420, and 425dynamically, for example, as a function of temperature, supply voltage,time since the last refresh of the sector, the number of erase/writecycles associated with a sector, or even the threshold voltage readduring the last read cycle.

Read/write control 170 or 570 decodes a threshold voltage in a forbiddenzone 425 as data values corresponding to the next lower allowed state420. Threshold voltages in forbidden zones 415 can be corrected byprogramming the memory cell up to the next allowed state. Similarly, ifa memory architecture provides a method for individual erasing orreducing the threshold voltage of a single memory cell, a thresholdvoltage in a forbidden zone 425 can be lowered to the next lower allowedstate. However, a typical flash memory architecture erases a sector as aunit and does not provide a mechanism for erasing or reducing thethreshold voltage of individual memory cells. In such flasharchitectures, a sector containing a data error can be marked asrequiring a refresh. Special memory cells in the array or a separateregister can be used to identify the data sectors marked for a refresh.FIG. 6 illustrates a system 600 capable of performing scheduled ordelayed refreshes of sectors. In system 600, an error detection circuit655 detects data errors in data that a read circuit 650 reads frommemory array 140. Error detection can occur as described above when aread circuit 650 reads a memory cell having a threshold voltage in aforbidden zone or as described below when a data value read isinconsistent with an error detection and correction code. When an erroris detected, error detection circuit 655 marks the sector as requiring arefresh, for example by directing read/write control 670 to write a flagvalue in overhead memory cells in the sector containing the data erroror write a sector number in a register in a refresh control 620. Therefresh for a data sector marked as containing a data error need not beimmediate. Instead refresh control 620 can wait for a period ofinactivity of memory 600 before initiating a refresh operation on themarked sector. Alternatively, if the flag is stored in non-volatilememory, the refresh operation can occur during a start up procedure inwhich refresh control 620 checks for sectors requiring a refreshoperation.

To perform a refresh operation on an identified sector, refreshcontroller 620 reads the identified sector and temporarily stores theresults in a buffer 610 while the identified data sector is erased.Buffer 610 can be on-chip or off-chip volatile memory such as SRAM orDRAM or non-volatile memory that stores digital or analog data. Adigital buffer stores digital values that a data output circuit 660determines from the threshold voltage of the identified sector. In oneembodiment of memory 600, read circuit 650 is an analog read circuit,and data output circuit 660 includes an analog-to-digital converterprovides digital results for storage in data buffer 610. Use of ananalog buffer can avoid such conversions during a refresh. For example,if buffer 610 contains DRAM cells, charge stored in DRAM capacitors maybe proportional to the threshold voltages read from associatedmultibit-per-cell memory cells, and analog values read from the DRAMcells can indicate the threshold voltage to be programmed. However,analog DRAM requires additional overhead circuitry. Another alternativeis to use a spare memory sector in array 140 for buffer 610 so that thesame analog read and write circuits 650 and 630 can read from theselected sector and write to the spare sector. Data from the sparesector can be rewritten to the original sector after the original sectorhas been erased. Alternatively, data can be left in the spare sectorwith addresses initially corresponding to the original sector beingmapped to the spare sector.

Refresh control 620 controls refresh operations that read the content ofa data sector into buffer 610, correct the data, and write data frombuffer 610 back to memory array 140. In the case where thresholdvoltages are recorded in buffer 610, a data correction circuit 615identifies any threshold voltages that are not in an allowed state 420and replaces such threshold voltages with the correct one of targetlevels VW1 to VWn. If error detection and correction codes are usedinstead of or in addition to forbidden zones, data correction circuit615 can also use such codes to determine or confirm the correct datavalue or correct threshold voltage. As shown, correction circuit 615operates on digital values read from memory array 140, but alternativelydata correction can be performed before writing values from buffer 610to a sector in array 140.

The corrected data can be written back into the original sector or to adifferent sector. Using a different sector helps to “randomize” thenumber of write/erase cycles for each sector. Otherwise, “bad” sectorsthat require frequent refresh operations would be subject to moreprogram and erase cycles than “good” sectors, and the refresh operationscould exacerbate endurance problems. To determine when a differentsector should store the corrected values after a refresh, overheadmemory cells in each sector can hold an erase count indicating thenumber of write/erase cycles for the sector and/or a refresh timeindicating when the sector was last refreshed. Each erase cycle readsthe erase count from a sector, erases the sector, and stores anincremented erase count in the overhead memory cells. Each refreshoperation updates the refresh time in the sector. A sector can bedeclared invalid or defective during a/refresh operation when the erasecount is too high or when the last refresh time indicates a very shortinterval since the last refresh operation. The erase count is too high,for example, when the erase count exceeds a limit predetermined for thememory or determined relative to the erase counts in other sectors. Whenthe erase count is too high or the last refresh was too recent, arefresh operation uses a spare sector in place of the invalid sector. Analternative implementation uses a new sector for each refresh operation.For both embodiments, an on-chip or off-chip control circuit can keeptrack of the address mappings when swapping sectors.

During the refresh of a sector, arbitration logic 645 can performarbitration to avoid accessing of a sector being erased. For example,memory 600 may be flagged as temporarily unavailable. Alternatively, asillustrated in FIG. 6, arbitration logic 645 can reroute data accesses.For a write, arbitration logic 645 temporarily stores input data andpossibly an address in buffer 610 and after a refresh operation iscomplete, controls multiplexer 675 to write the data from buffer 610 tothe indicated address. If buffer 645 contains the data corresponding toa read address, arbitration logic 610 controls a multiplexer 665 toroute data from buffer 610 to data output circuit 660 during a refreshoperation.

System 600 also includes a timer 625 for systematic memory refreshes anddelaying flagged refreshes until a convenient time. In alternativeembodiments of the invention, timer 250 is on-chip or is an off-chipcomponent. As described above, a refresh operation affects a singlememory cell or sector, but an entire memory can be refreshed sector bysector if desired. Such refreshes can keep data accurately stored innon-volatile memory for extended periods of time even if the data is nototherwise read periodically. In one embodiment of the invention, memoryrefreshes are periodic with a period shorter than the time required fora non-defective memory cell to drift from one allowed state, across aforbidden zone to another allowed state or a forbidden zonecorresponding to another allowed state. Such periods are typically onthe order of at least weeks or months for current non-volatile memorybut more frequent refreshes having a period of on the order of a day orless can be used. Because of the long intervals between refreshes,periodic memory refreshes may be scheduled for times when use of thememory is less likely. Selection of the time for a refresh can beselected according to the time of the day or the day of the week toselect a time when memory access is unlikely, for example, midnight on aSunday. Refresh control 620 can also monitor memory access to select andfurther delay a refresh until detecting a suitably long period of memoryinactivity. The last date and time of a refresh can be stored on-chipand checked periodically when the memory is powered. Additionally oralternatively, refresh control 620 can conduct a full or partial refreshof memory array 140 as part of a power-up procedure for memory 600.

As another aspect of the invention, a mapping between allowed thresholdvoltage states and digital values maps adjacent threshold voltage levelsto multibit values that differs only in a single bit. Accordingly, thethreshold voltage of a memory cell drifting from one threshold voltagestate to an adjacent state causes a single bit error. In contrast, forconventional data coding, which monotonically maps threshold voltagestates with increasing (or decreasing) threshold voltage to sequentiallyincreasing binary values, a memory cell's threshold voltage drifting asingle state can cause a multibit error.

Table 1 illustrates two data coding schemes for a multibit-per-cellmemory that stores one 4-bit value per memory cell. To store a 4-bitvalue in a memory cell, sixteen allowed states are allocated in therange of possible (or suitable) threshold voltages for the memory cell.For Table 1, a threshold voltage ranging between 1 and 5 volts ispartitioned into sixteen allowed states designated levels 1 to 16. TABLE1 16-bit Linear and Gray Coded States THRESHOLD LEVEL VOLTAGE LINEARCODING GRAY CODING 1 1.00-1.24 V 0000 0000 2 1.25-1.49 V 0001 0001 31.50-1.74 V 0010 0011 4 1.75-1.99 V 0011 0010 5 2.00-2.24 V 0100 0110 62.25-2.49 V 0101 0111 7 2.50-2.74 V 0110 0101 8 2.75-2.99 V 0111 0100 93.00-3.24 V 1000 1100 10 3.25-3.49 V 1001 1101 11 3.50-3.74 V 1010 111112 3.75-3.99 V 1011 1110 13 4.00-4.24 V 1100 1010 14 4.25-4.49 V 11011011 15 4.50-4.74 V 1110 1001 16 4.75-4.99 V 1111 1000The linear coding according of Table 1 maps threshold voltage levels 1to 16 in order of increasing threshold voltage to sequentiallyincreasing binary values 0000 to 1111. With linear coding, if thethreshold voltage of a memory cell is programmed to threshold voltagelevel 9 but drifts down to threshold voltage level 8, a 4-bit erroroccurs. In contrast, for the gray coding of Table 1, a threshold voltagedrifting to an adjacent allowed state causes only a single bit error.

To implement the gray coding of Table 1 in memory array 100 of FIG. 1,multiplexer 120 implements the mapping between a 4-bit digital value Dinas in column 4 of Table 1 to a voltage VW that is within a voltage rangeindicated in column 2 of Table 1. Read/write control 170 performs thereverse mapping from VR at the end of the read stage the associatedigital value in column 4 of Table 1.

The gray coding process of Table 1 can be varied in a variety of ways.For example, many different mappings that provide a series of valueswhere adjacent values differ by a single bit are possible. Such mappingsare not restricted to 4-bit data values but are known for any size ofmultibit data values. Also, although Table 1 describes allowed stateswhich are separated by 0.01-volt forbidden zones, gray coding ofmultibit values in a memory cell is applicable to memories wherepossible threshold voltages for a memory cell do not have forbiddenzones between the allowed states.

As a further aspect of the invention, error detection and correctioncodes can be generated and stored for a section, row, column, or otherpart of a memory and used to correct data errors. In particular, when athreshold voltage is observed in a forbidden zone (e.g., between 2.99volts and 3.00 volts), an error correction code generated when data waswritten can be used to determine the correct allowed threshold voltagestate for a memory cell. The gray coding of Table 1 is well suited touse with error correction codes since single bit errors are typicallyeasier to correct with error correction codes than are multiple biterrors. In memory 600 of FIG. 6, error detection circuit 655 use errordetection codes to detect errors with or without forbidden zones andwhen the threshold voltage of a memory cell has crossed through aforbidden zone. Similarly, data correction circuit 615 corrects data orthreshold voltages using error correction codes with or withoutforbidden zones and when the threshold voltage of a memory cell hascrossed through a forbidden zone.

Although the invention has been described with reference to particularembodiments, the description is only an example of the invention'sapplication and should not be taken as a limitation. In particular, eventhough much of preceding discussion was aimed at non-volatile memoryincluding N-channel floating gate devices, alternative embodiments ofthis invention include other memory structures. For example, embodimentsemploying P-channel transistors are possible. In such embodiments,erasing and charge leakage increase the threshold voltage of a memorycell, and programming decreases the threshold voltages. Accordingly,variations in the read and write processes described above are required.Various other adaptations and combinations of features of theembodiments disclosed are within the scope of the invention as definedby the following claims.

1. A non-volatile semiconductor memory comprising: an array of memorycells; drivers and decoders coupled to apply voltages to the array toread any memory cell in the array, wherein each memory cell that storesdata has a threshold voltage that identifies a multibit data valuewritten in the memory cell; an error detection circuit that detectserrors in threshold voltages of memory cells storing data, wherein inresponse to detecting an error in the threshold voltage of memory cell,the error detection circuit signals for a refresh operation; and acontrol circuit coupled to control the drivers and decoders, whereinduring the refresh operation, the control circuit writes a correctedthreshold voltage that corrects the error that the error detectioncircuit detected. 2-23. (canceled)